Complex machines and industrial processes are frequently operated by a control system employing a programmable controller. The process or machine typically includes a plurality of operating elements which may be any of various types such as numeric, mechanical, hydraulic, electronic analog and digital. The controller operates to hold an operating variable to a fixed value or set point in accordance with a programmed set of data normally stored in a memory. The control function may range from a simple on-off type to those employing complex mathematical functions.
The advent of programmable controllers has substantially affected the design of control systems and has introduced a higher level of complexity into the machinery and its associated control logic. As a result of this increased level of complexity, a need has developed for diagnosing faulty equipment. Diagnostic capability is particularly important for large industrial processes and machines where it is necessary to promptly detect and pinpoint equipment faults in order to minimize down-time.
A number diagnostic devices for use with programmable controllers have been devised in the past. One type of diagnostic device commonly referred to as "on-board" or "processor resident", forms an integral part of and is physically resident within the programmable controller. Processor resident diagnostic typically use the CPU (central processing unit) of the controller, require substantial memory and result in an increase in the time required for scanning the inputs and output of the controller. As a result, it is necessary to either sacrifice processing time in the controller or resort to other forms of non-resident diagnostics.
"Off-board" or non-resident diagnostics are also less than completely satisfactory for several reasons. For example, one disadvantage involves the fact that only a limited amount of data may be obtained from the programmable controller through its data port because such controllers do not readily permit access to their hardware bus structure. The restricted rate at which diagnostic data may be obtained through a data port of the controller severely limits diagnostic analysis. For example, "masking" type diagnostic techniques continually fault due to the restricted data rate, since not every current state of an operating element can be detected before the next machine cycle. Moreover, "learning" type diagnostic techniques which depend on a "teach mode" can not be properly utilized in an off-board diagnostic system because each request for data will randomly miss important events and will thus be "taught" invalid reference data.
In any event, both on-board and off-board diagnostic systems proposed in the past have necessitated the use of a mini or main frame computer implementation,thus posing substantial costs in terms of equipment and programming time. Also, prior art diagnostic systems are usually of a dedicated type i.e., these systems are particularly designed to detect faults in a particular machine or process system and cannot be readily adapted for use with other kinds of machines or processes.
Finally, in the case of diagnostic systems which are embedded in the programmable controller it is necessary to change the diagnostic program in order to match each change that is made in the controller logic. Additionally, in the event of a logic failure it is difficult to determine whether such failure has occurred in the controller logic or the diagnostic logic.